package weaver.interfaces.ht.duss.cgsq;

import com.sap.mw.jco.JCO;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import weaver.general.Util;
import weaver.interfaces.jjy.duss.util.SAPConnPool;

import java.util.HashMap;
import java.util.Map;

/**
 * @Title: ecology-9-demo
 * @Company: 泛微软件
 * @author: weaver.Dusongsong
 * @version: 1.0
 * @CreateDate: 2020-06-17
 * @Description: ${description}
 * @ModifyLog:
 **/

public class ZBPM_PR_BUDGET {
    public JSONArray  execute(Map<String, String> map) {
        SAPConnPool SAPConn = new SAPConnPool();
        JCO.Client myConnection = SAPConn.getConnection();
        JCO.Function bapi = SAPConn.excuteBapi("ZBPM_PR_BUDGET");
        JCO.ParameterList input = bapi.getImportParameterList();//输入参数和结构处理
        JCO.ParameterList inputtable = bapi.getTableParameterList();//输入表的处理
        //输入参数
        input.setValue(map.get("I_INORDER"),"I_INORDER");
        input.setValue(map.get("I_KSTAR"),"I_KSTAR");
        input.setValue(map.get("I_MONAT"),"I_MONAT");
        input.setValue(map.get("I_YEAR"),"I_YEAR");

        //执行函数
        myConnection.execute(bapi);
        JCO.ParameterList out = bapi.getExportParameterList();//输出参数和结构处理
        JCO.ParameterList Table00 = bapi.getTableParameterList();//输出表的处理

        //返回处理结果以及日志
        JCO.Table tabs = Table00.getTable("IT_BUDGET");
        JSONArray jsonArray = new JSONArray();
        for (int i = 0; i < tabs.getNumRows(); i++) {
            JSONObject jsonObject = new JSONObject();
            tabs.setRow(i);
            jsonObject.put("MANDT", Util.null2String(tabs.getValue("MANDT")));//客户端
            jsonObject.put("ZMON", Util.null2String(tabs.getValue("ZMON")));//会计期间
            jsonObject.put("AUFNR", Util.null2String(tabs.getValue("AUFNR")));//订单号
            jsonObject.put("KSTAR", Util.null2String(tabs.getValue("KSTAR")));//成本要素
            jsonObject.put("ZPLAN", Util.null2String(tabs.getValue("ZPLAN")));//交易货币中的总值
            jsonObject.put("ZACTUL", Util.null2String(tabs.getValue("ZACTUL")));//交易货币中的总值
            jsonObject.put("ZCOMMIT", Util.null2String(tabs.getValue("ZCOMMIT")));//交易货币中的总值
            jsonObject.put("ZREQAMT", Util.null2String(tabs.getValue("ZREQAMT")));//交易货币中的总值
            jsonObject.put("ZACCAMT", Util.null2String(tabs.getValue("ZACCAMT")));//交易货币中的总值
            jsonObject.put("ZAVAAMT", Util.null2String(tabs.getValue("ZAVAAMT")));//交易货币中的总值
            jsonObject.put("P_KTEXT", Util.null2String(out.getValue("P_KTEXT")));//ORDER 描述
            jsonObject.put("P_TXT50", Util.null2String(out.getValue("P_TXT50")));//科目描述
            jsonArray.add(jsonObject);
        }
        System.out.println(jsonArray.toString());
        //返回处理结果以及日志
        JCO.releaseClient(myConnection);
        return jsonArray;
    }

    public static void main(String[] args) {
        ZBPM_PR_BUDGET pr_budget = new ZBPM_PR_BUDGET();
        Map map = new HashMap();
        map.put("I_INORDER","BM20020");
        map.put("I_KSTAR","5101110800");
        map.put("I_MONAT","07");
        map.put("I_YEAR","2020");
        pr_budget.execute(map);




    }
}
